BlitImageAlphaAddImage
BlitImageAlphaAddImage ThisImage, Xpos, Ypos, BlendImage
 
Parameters:

    ThisImage = The Index of the image you wish to draw
    Xpos = The X coordinate to draw this image
    Ypos = The Y coordinate to draw this image
    BlendImage = The index of the image to you wish to blend with the primary image
Returns: NONE
 

     BlitImageAlphaAddImage is similar to the DrawImage function, except it has post processing. What it does, is it takes two images (of the same size) and uses Alpha Addition to blend them together before drawing them. Each output pixel is created by adding the a blend image pixels with the primary images pixels. Neither image is modified during the process.

      To create equivalent functionally, you'd need three images. The two images you wish to draw blended and third to store the temporary blended state. So we'd first copy the src image #1 to image #3, then blend src image #2 onto image #3 and finally draw image 3 to it's destination.

      The combined processing is not just to save you a few lines of code, it's actually a more optimal way of performing this action.



FACTS:


     * BlitImageAlphaAddImage is only intend for drawing FX or AFX formatted image surfaces.

     * BlitImageAlphaAddImage doesn't support mask & alpha channel transparency.



 
Example Source: Download This Example
; Inlude the Blit Image functions
  #Include "BlitImage"
  
; Create an FX image the size of the screen
  MyImage=NewFXImage(GetScreenWidth(),GetScreenHeight())
  
  
; Create a second  FX image the size of the screen
; we'll be using to blend with our other image
  Backdrop=NewFXImage(GetScreenWidth(),GetScreenHeight())
  
; fill the backdrop with something so we can see it
  Tile=LoadNewFxImage("..\../Media/bg22.jpg")
  RenderToImage Backdrop
  TileImage Tile,0,0,false
  
  
; Set Fps of the program
  SetFPS 30
  
; enable Vsync to remove any tearing from the refresh
  ScreenVsync on
  
; Start of Demo loop
  Do
     
   ; redirect all drawing to this image
     RenderToImage MyImage
     
     
     Col=$803030
     If MouseButton()<>0 Then Col=RndRGB()
     
   ; draw a circle at the mouses current position
     CircleC MouseX(),MouseY(),100true,Col
     
   ; redirect all drawing to screen back buffer
     RenderToScreen
     
   ; To do combined Blit (copy) our Image, with combined CLS of image.
   ; to the PB screen
     BlitImageAlphaAddImage(MyImage,0,0,BackDrop)
     
     
   ; Display Message
     Text 0,0,"USing BlitImageAlphaAddImage to create a blur effect"
     
   ; flip the back buffer to the front, so the user can see it
     Sync
     
  Loop
  
  
  
  
  
 
Related Info: BlitImageAlpha50Colour | BlitImageAlphaMultImage | BlitImageAlphaSubImage | BlitImageClear | Box | DrawAlphaImage | DrawImage | InkMode :
 


(c) Copyright 2002 - 2024 - Kevin Picone - PlayBASIC.com